package cn.joker.springmyselfjoker.demos.web.result;

/**
 * ResultUtil
 * @author 无
 * @since 2020
 * @version 1.0
 */
public class ResultUtil {

    /**
     * 成功时返回数据
     * @param data 数据结果集
     * @return {@code JsonResult}
     */
    public static JsonResult success(Object data) {
        return new JsonResult(ResultEnum.SUCCESS.getCode(), ResultEnum.SUCCESS.getMsg(), data);
    }

    /**
     * 成功时返回数据
     * @param count 成功操作数据的数量
     * @return {@code JsonResult}
     */
    public static JsonResult success(int count) {
        return new JsonResult(ResultEnum.SUCCESS.getCode(), "操作成功", count);
    }

    /**
     * 成功时返回数据
     * @param count 成功操作数据的数量
     * @return {@code JsonResult}
     */
    public static JsonResult success(long count) {
        return new JsonResult(ResultEnum.SUCCESS.getCode(), "操作成功", count);
    }

    /**
     * 成功时返回数据
     * @param msg 提示信息
     * @param data 数据结果集
     * @return {@code JsonResult}
     */
    public static JsonResult success(String msg, Object data) {
        return new JsonResult(ResultEnum.SUCCESS.getCode(), msg, data);
    }

    /**
     * 失败时返回数据
     * @param data 数据结果集
     * @return {@code JsonResult}
     */
    public static JsonResult fail(Object data) {
        return new JsonResult(ResultEnum.FAIL.getCode(), ResultEnum.FAIL.getMsg(), data);
    }

    /**
     * 失败时返回数据
     * @param code 失败状态码
     * @param msg 失败提示
     * @return {@code JsonResult}
     */
    public static JsonResult fail(Integer code, String msg) {
        return new JsonResult(code, msg);
    }

    /**
     * 错误时返回数据
     * @param code 错误状态码
     * @return {@code JsonResult}
     */
    public static JsonResult error(Integer code) {
        return new JsonResult(code, null);
    }

    /**
     * 错误时返回数据
     * @param code 错误状态码
     * @param msg 错误提示
     * @return {@code JsonResult}
     */
    public static JsonResult error(Integer code, String msg) {
        return new JsonResult(code, msg);
    }

    /**
     * 错误时返回数据
     * @param code 错误状态码
     * @param msg 错误提示
     * @param errorData 错误数据集
     * @return {@code JsonResult}
     */
    public static JsonResult error(Integer code, String msg, Object errorData) {
        return new JsonResult(code, msg, errorData);
    }

}
